1
현대적 추상화: 함수형 러스트의 힘
AI034Lesson 13
00:00

현대적인 러스트는 함수형 프로그래밍 원칙을 활용하여 제공합니다 비용이 없는 추상화. 함수를 값으로, 데이터를 불변 스트림으로 취급함으로써, 러스트는 표현력 있는 I/O 연산 성능 훼손 없이 가능하게 합니다.

1. 환경과 클로저

표준 함수와 달리, 클로저는 자신의 환경을 포획할 수 있습니다. 이들은 Fn, FnMut또는 FnOnce _trait를 사용하여 관리합니다 클로저 내 소유권 전달메모리 안전성을 유지할 수 있도록 보장합니다. 함수가 상태를 가질 때도 말이죠.

let v1 = vec![1, 2, 3];
let v1_iter = v1.iter().map(|x| x + 1);
// v1_iter는 지연 평가이며 아직 실행되지 않았습니다!

2. 선언적 파이프라인

사용함으로써 반복자 어댑터개발자는 복잡한 중첩 반복문을 간결한 로직으로 대체합니다. 그리고 iter_mut 메서드 안전하고 직접적인 기능적 변환을 가능하게 하며, 컴파일러는 이러한 고수준 호출을 수작업으로 작성한 반복문과 동일한 어셈블리 코드로 최적화합니다.

기능적 파이프라인contents.lines().filter(|l| l.contains(q)).collect()안전망오류[E0502]: 소유권을 얻을 수 없습니다`list`를 불변으로 접근하려 했지만...🦀?

3. 성능 벤치마킹

개발자 프로파일 또는 릴리스 모드로 컴파일될 때, 개발자 프로파일 또는 릴리스 모드에서, search 함수가 효율성을 입증합니다. 통계적 벤치마킹 결과: test bench_search_iter ... 벤치: 19,234,900 나노초/반복. 이는 이러한 추상화가 진정한 '비용 없는' 것임을 확인시켜 줍니다.

⚠️ 컴파일러 경고
경고: 사용하지 않는 `Map`입니다. 반드시 사용해야 합니다. 반복자는 지연 평가되며, .collect() 또는 .sum() 같은 소비 메서드를 호출하지 않으면 아무 일도 하지 않습니다. collect() 또는 sum().
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>